feat(performance): persist and aggregate Web Vitals metrics#792
Conversation
|
@MerlinTheWhiz Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
|
Great job so far There’s just one blocker — the workflow is failing. Could you take a look and fix it so all checks pass? Happy to review again once that’s done. |
|
@RUKAYAT-CODER It was from my edits. I've resolved the issues now, you can merge now. All green. |
|
@RUKAYAT-CODER Please hold, don't merge yet. |
|
@RUKAYAT-CODER You can merge now. Thanks |
|
Kindly resolve conflict |
|
@RUKAYAT-CODER Very sorry for the delay. I stepped out to touch grass today. I'll get on it soon. |
0caf7fc to
72fe830
Compare
72fe830 to
f464279
Compare
|
@RUKAYAT-CODER I've resolved conflicts. You can merge review and merge. |
|
Thank you for contributing to the project. |
Description
Persists incoming Web Vitals metrics to a new
web_vitalsdatabase table, exposes aggregated data via a GET endpoint, and adds poor-rate alerting when a metric exceeds the 5% threshold.Changes:
src/lib/db/migrations/001_create_web_vitals.sql(table DDL with indexes on name, page_url, created_at, rating)src/lib/db/migrate.ts— migration runner that tracks applied migrations in a_migrationstablesrc/app/api/performance/vitals/route.ts:edge→nodejs(required forpgaccess)web_vitals, keeps existing console alerts, and fires an additional alert if poor-rate exceeds 5% over the last 500 sessionsavg_value,poor_rate_pct) grouped bynameandpage_url, with a configurable?range=7d|30d|90d|allquery parametermigratescript topackage.jsonRelated Issue
Closes #764
Type of Change
Checklist